var mongodb = require('./db');

function Lbs(parame){
	this.longitude = parame.longitude;//经度
	this.latitude  = parame.latitude;//纬度
	this.driverId  = parame.driverId;//司机ID
}
module.exports = Lbs;
//存储司机坐标
Lbs.prototype.save = function(callback)
{
	//组装数据
	var data = {
		location : new Array(parseFloat(this.longitude),parseFloat(this.latitude))
	};
	var where = {
		driver_id : parseInt(this.driverId)
	};
	mongodb.open(function (err, db) {
    if (err) {
      return callback(err);//错误，返回 err 信息
    }
    //读取 lbs 集合
    db.collection('lbs', function (err, collection) {
      if (err) {
        mongodb.close();
        return callback(err);//错误，返回 err 信息
      }
      //将用户数据插入 lbs 集合

      collection.update(where,{$set:data},
      	{
      		upsert : true
      	},function (err) {
        mongodb.close();
        if (err) {
          return callback(err);//错误，返回 err 信息
        }
        callback(0);//成功！
      });
    });
  });
}
//获取附近的人
Lbs.prototype.get = function (callback)
{
  //组装数据
    var data = {
      longitude : this.longitude,
      latitude : this.latitude
    };
    mongodb.open(function (err, db) {
      if (err) {
        return callback(err);//错误，返回 err 信息
      }
      //读取lbs集合
      var collection = db.collection('lbs');
      //查找附近
      var point = new Array(parseFloat(data.longitude),parseFloat(data.latitude));
      var command = {};
      command.geoNear = 'lbs';
      command.near = point;
      command.spherical = true;
      command.maxDistance = 0.5/6371;
      command.distanceMultiplier = 6371;
      mongodb.command(command,function (err,results){//dis单位km
          if(err){
            mongodb.close();
            return callback(err);
          }
          mongodb.close();
          return callback(0,results.results);
      });
    });
} 